nethackfandomcom-20200214-history
Source:NetHack 3.3.0/prop.h
Below is the full text to prop.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/prop.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)prop.h 3.3 1999/07/07 */ 2. /* Copyright © 1989 Mike Threepoint */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PROP_H 6. #define PROP_H 7. 8. /*** What the properties are ***/ 9. #define FIRE_RES 1 10. #define COLD_RES 2 11. #define SLEEP_RES 3 12. #define DISINT_RES 4 13. #define SHOCK_RES 5 14. #define POISON_RES 6 15. #define ACID_RES 7 16. #define STONE_RES 8 17. /* note: for the first eight properties, MR_xxx (1 << (xxx_RES - 1)) */ 18. #define ADORNED 9 19. #define REGENERATION 10 20. #define SEARCHING 11 21. #define SEE_INVIS 12 22. #define INVIS 13 23. #define TELEPORT 14 24. #define TELEPORT_CONTROL 15 25. #define POLYMORPH 16 26. #define POLYMORPH_CONTROL 17 27. #define LEVITATION 18 28. #define STEALTH 19 29. #define AGGRAVATE_MONSTER 20 30. #define CONFLICT 21 31. #define PROTECTION 22 32. #define PROT_FROM_SHAPE_CHANGERS 23 33. #define WARNING 24 34. #define TELEPAT 25 35. #define FAST 26 36. #define STUNNED 27 37. #define CONFUSION 28 38. #define SICK 29 39. #define BLINDED 30 40. #define SLEEPING 31 41. #define WOUNDED_LEGS 32 42. #define STONED 33 43. #define STRANGLED 34 44. #define HALLUC 35 45. #define HALLUC_RES 36 46. #define FUMBLING 37 47. #define JUMPING 38 48. #define WWALKING 39 49. #define HUNGER 40 50. #define GLIB 41 51. #define REFLECTING 42 52. #define LIFESAVED 43 53. #define ANTIMAGIC 44 54. #define DISPLACED 45 55. #define CLAIRVOYANT 46 56. #define VOMITING 47 57. #define ENERGY_REGENERATION 48 58. #define MAGICAL_BREATHING 49 59. #define HALF_SPDAM 50 60. #define HALF_PHDAM 51 61. #define SICK_RES 52 62. #define DRAIN_RES 53 63. #define WARN_UNDEAD 54 64. #define INVULNERABLE 55 65. #define FREE_ACTION 56 66. #define SWIMMING 57 67. #define SLIMED 58 68. #define FIXED_ABIL 59 69. #define FLYING 60 70. #define UNCHANGING 61 71. #define PASSES_WALLS 62 72. #define SLOW_DIGESTION 63 73. #define INFRAVISION 64 74. #define DETECT_MONSTERS 65 75. 76. #define LAST_PROP (DETECT_MONSTERS) 77. 78. /*** Where the properties come from ***/ 79. /* Definitions were moved here from obj.h and you.h */ 80. struct prop { 81. /*** Properties conveyed by objects ***/ 82. long extrinsic; 83. /* Armor */ 84. # define W_ARM 0x00000001L /* Body armor */ 85. # define W_ARMC 0x00000002L /* Cloak */ 86. # define W_ARMH 0x00000004L /* Helmet/hat */ 87. # define W_ARMS 0x00000008L /* Shield */ 88. # define W_ARMG 0x00000010L /* Gloves/gauntlets */ 89. # define W_ARMF 0x00000020L /* Footwear */ 90. #ifdef TOURIST 91. # define W_ARMU 0x00000040L /* Undershirt */ 92. # define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF | W_ARMU) 93. #else 94. # define W_ARMOR (W_ARM | W_ARMC | W_ARMH | W_ARMS | W_ARMG | W_ARMF) 95. #endif 96. /* Weapons and artifacts */ 97. # define W_WEP 0x00000100L /* Wielded weapon */ 98. # define W_QUIVER 0x00000200L /* Quiver for (f)iring ammo */ 99. # define W_SWAPWEP 0x00000400L /* Secondary weapon */ 100. # define W_ART 0x00001000L /* Carrying artifact (not really worn) */ 101. # define W_ARTI 0x00002000L /* Invoked artifact (not really worn) */ 102. /* Amulets, rings, tools, and other items */ 103. # define W_AMUL 0x00010000L /* Amulet */ 104. # define W_RINGL 0x00020000L /* Left ring */ 105. # define W_RINGR 0x00040000L /* Right ring */ 106. # define W_RING (W_RINGL | W_RINGR) 107. # define W_TOOL 0x00080000L /* Eyewear */ 108. #ifdef STEED 109. # define W_SADDLE 0x00100000L /* KMH -- For riding monsters */ 110. #endif 111. # define W_BALL 0x00200000L /* Punishment ball */ 112. # define W_CHAIN 0x00400000L /* Punishment chain */ 113. 114. /*** Property is blocked by an object ***/ 115. long blocked; /* Same assignments as extrinsic */ 116. 117. /*** Timeouts, permanent properties, and other flags ***/ 118. long intrinsic; 119. /* Timed properties */ 120. # define TIMEOUT 0x00ffffffL /* Up to 16 million turns */ 121. /* Permanent properties */ 122. # define FROMEXPER 0x01000000L /* Gain/lose with experience, for role */ 123. # define FROMRACE 0x02000000L /* Gain/lose with experience, for race */ 124. # define FROMOUTSIDE 0x04000000L /* By corpses, prayer, thrones, etc. */ 125. # define INTRINSIC (FROMOUTSIDE|FROMRACE|FROMEXPER) 126. /* Control flags */ 127. # define I_SPECIAL 0x10000000L /* Property is controllable */ 128. }; 129. 130. /*** Definitions for backwards compatibility ***/ 131. #define LEFT_RING W_RINGL 132. #define RIGHT_RING W_RINGR 133. #define LEFT_SIDE LEFT_RING 134. #define RIGHT_SIDE RIGHT_RING 135. #define BOTH_SIDES (LEFT_SIDE | RIGHT_SIDE) 136. #define WORN_ARMOR W_ARM 137. #define WORN_CLOAK W_ARMC 138. #define WORN_HELMET W_ARMH 139. #define WORN_SHIELD W_ARMS 140. #define WORN_GLOVES W_ARMG 141. #define WORN_BOOTS W_ARMF 142. #define WORN_AMUL W_AMUL 143. #define WORN_BLINDF W_TOOL 144. #ifdef TOURIST 145. #define WORN_SHIRT W_ARMU 146. #endif 147. 148. #endif /* PROP_H */ prop.h